home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 4: Demo 1 / almathera_demo1.bin / amos / give`em`hell.amos / give`em`hell.amosSourceCode < prev    next >
AMOS Source Code  |  1995-03-16  |  40KB  |  1,615 lines

  1. ' Give `Em' Hell 
  2. ' -------------- 
  3. ' By Ben Ashley ï¿½ Top Sprite software 1991 
  4. ' AMOS is ï¿½ 1990 Mandarin/Jawx 
  5. '
  6. ' Source Code, Document and Technical .Doc's also included!
  7. '
  8. ' The original sprite pic is also on this disk, as a compacted screen! 
  9. '
  10. ' In case you're low on Memory!
  11. Close Editor : Close Workbench 
  12. '
  13. ' This disk is ï¿½ ** CERTIFIED VIRUS FREE ** ï¿½  
  14. ' It also, has an Anti-Virus Bootblock!
  15. '
  16. ' As T.P's policy goes, the documents are extensive! 
  17. ' This game saves the High-Scores to disk! 
  18. '
  19. Screen Open 0,320,256,32,Lowres
  20. Curs Off : Flash Off : Cls 0 : Hide On 
  21. Colour 1,$FFF
  22. Pen 1 : Paper 0
  23. Centre At(,10)+"Loading...."
  24. DI$="Df0:" : On Error Proc HELP
  25. '
  26. ' Incase of extra memory.  If you have extra memory, you'll get better sound 
  27. ' and music! 
  28. '
  29. If Chip Free>250000 and Fast Free>0 or Chip Free>400000
  30.    MEG1=1
  31. Else 
  32.    MEG1=0
  33. End If 
  34. '
  35. ' Get rid of any LURKING BACK-UP files....... ( This bit is here because it  
  36. ' was useful when debugging!)
  37. '
  38. If Exist("Autoexec.Bak")
  39.    Kill "Autoexec.Bak"
  40. End If 
  41. ' Set up Varibles and arrays!
  42. Dim SK(2) : Dim HOK(2) : Dim AOK(2) : Dim JOK(2) : Dim POK(2)
  43. Dim MEN(2) : Dim XM(2) : Dim YM(2)
  44. Dim TX(2) : Dim TY(2) : Dim PX(2) : Dim PY(2) : Dim JX(2) : Dim JY(2)
  45. Dim HX(2) : Dim HY(2)
  46. Dim TI(2) : Dim HI(2) : Dim MI(2) : Dim JI(2) : Dim PI(2)
  47. Dim T$(2) : Dim D(2) : WINNER=0 : Dim A$(20) : Dim DI(2)
  48. Dim HL(5) : Dim H$(5) : N$="" : SC=0 : Dim FL(2)
  49. ' The Damage Arrays
  50. Dim HD(2) : Dim TD(2) : Dim PD(2) : Dim JD(2)
  51. ' Shooting flags!
  52. Dim SD(2)
  53. BO=0 : BO2=0 : MF=0 : MF2=0
  54. TF=0 : TF2=0 : HF=0 : HF2=0 : JF=0 : JF2=0
  55. PF=0 : PF2=0
  56. ' Give all arrays their default numbers! 
  57. For F=1 To 2
  58.    SK(F)=0
  59.    HOK(F)=1
  60.    AOK(F)=1
  61.    JOK(F)=1
  62.    POK(F)=1
  63.    MEN(F)=3
  64.    T$(F)="m"
  65.    D(F)=1
  66.    DI(F)=54
  67.    FL(F)=0
  68. Next F
  69. ' Set up Hi-Scores+names!
  70. H$(1)="Ben Ashley" : HL(1)=6000
  71. H$(2)="Mat Tucker" : HL(2)=5000
  72. H$(3)="Top Sprite" : HL(3)=4000
  73. H$(4)="M Thatcher" : HL(4)=3000
  74. H$(5)="POLL TAX!?" : HL(5)=2000
  75. If Exist("Df0:Hi-Scores")
  76.    Open Random 1,"Hi-Scores"
  77.    Field 1,15 As NAME$,5 As SCORE$
  78.    For F=1 To 5
  79.       Get 1,F
  80.       HL(F)=Val(SCORE$)
  81.       H$(F)=NAME$
  82.    Next F
  83.    Close 1
  84. End If 
  85. ' Make `em global! 
  86. Global TX(),TY(),JX(),JY(),PX(),PY(),HX(),HY(),XM(),YM(),HOK(),AOK()
  87. Global JOK(),POK(),MEN(),TI(),MI(),JI(),PI(),HI(),T$(),D(),WINNER,A$(),DI()
  88. Global MEG1,BO,BO2,TF,TF2,JF,JF2,HF,HF2,MF,MF2,SD()
  89. Global H$(),N$,HL(),SK(),SC,FL(),HD(),PD(),TD(),JD()
  90. ' only load sound FX and music if there is enough Mem! 
  91. GAME
  92. ' The main game Loop 
  93. Procedure GAME
  94.    Do 
  95.       If MEG1=1
  96.          Load "Sound/Samples.Abk",6
  97.          Load "Sound/Rock`n'Blow.Abk" : Music 1
  98.       End If 
  99.       Sam Bank 6
  100.       Load "Graphics/Title.Pic" : Unpack 5 To 0 : Erase 5
  101.       Do 
  102.          Repeat 
  103.             If Fire(1) or Fire(0) Then Goto UP1
  104.             TIME=TIME+1
  105.          Until TIME=6000
  106.          Screen Open 1,320,256,16,Lowres : Curs Off : Flash Off : Colour 1,$FFF : Cls 0
  107.          Pen 1 : Paper 0 : Ink 1,0
  108.          SCORES["Give `Em' Hell","Best 5 Scores"]
  109.          Repeat 
  110.             If Fire(1) or Fire(0) Then Screen Close 1 : Goto UP1
  111.             TIME=TIME+1
  112.          Until TIME=12000
  113.          Screen Open 2,640,256,2,Hires : Curs Off : Flash Off : Colour 1,$FFF : Cls 0
  114.          Pen 1 : Paper 0 : Ink 1,0
  115.          CREDITS
  116.          Screen Close 1
  117.          Repeat 
  118.             If Fire(1) or Fire(0) Then Screen Close 2 : Goto UP1
  119.             TIME=TIME+1
  120.          Until TIME=25000
  121.          TIME=0
  122.          Screen Close 2
  123.       Loop 
  124.       UP1:
  125.       Screen Close 0
  126.       TW1=0
  127.       TW2=0
  128.       Repeat 
  129.          Screen Open 0,320,256,16,Lowres
  130.          Curs Off : Flash Off : Cls 0
  131.          If MEG1=1
  132.             Erase 3
  133.          End If 
  134.          Load "Graphics/Back.Abk" : Unpack 5 To 0 : Erase 5
  135.          '
  136.          ' Do all the usual and boring SET-UP stuff!!!!!  
  137.          '
  138.          SETUPSCREEN
  139.          '
  140.          SET_BOBS
  141.          '
  142.          ' Animation strings
  143.          STRINGS
  144.          Repeat 
  145.             K$=Lower$(Inkey$)
  146.             If K$="1"
  147.                If D(1)=1
  148.                   If DI(1)=54
  149.                      DI(1)=0
  150.                      Bob Off 13
  151.                   Else 
  152.                      DI(1)=54
  153.                      Bob 13,125,213,54
  154.                   End If 
  155.                End If 
  156.             End If 
  157.             P1C
  158.             If K$="0"
  159.                If D(2)=1
  160.                   If DI(2)=54
  161.                      DI(2)=56
  162.                      Bob Off 14
  163.                   Else 
  164.                      DI(2)=54
  165.                      Bob 14,185,213,54
  166.                   End If 
  167.                End If 
  168.             End If 
  169.             P2C
  170.             CHECKS
  171.             If Bob Col(1,21 To 21) and WINNER=1
  172.                WIN=1
  173.             End If 
  174.             If Bob Col(2,22 To 22) and WINNER=2
  175.                WIN=2
  176.             End If 
  177.             If K$="e" Then WIN=3
  178.          Until WIN=1 or WIN=2 or WIN=3
  179.          If WIN<3
  180.             Centre At(,10)+"Player "+Str$(WIN)+" Wins!"
  181.          End If 
  182.          ' Wow! At last, I've reached the end of the game!
  183.          ' This, has to be seen to be believed, so: 
  184.          ' * * *  ï¿½ ï¿½ G A M E   O V E R ï¿½ ï¿½  * * *
  185.          ' ---------------------------------------
  186.          Fade 3 : Wait 10*3 : Bob Off : Bob Clear 
  187.          Screen Open 0,320,256,32,Lowres
  188.          Curs Off : Flash Off : Cls 0
  189.          Pen 1 : Paper 0 : Ink 1,0
  190.          If WIN=1
  191.             Load "Graphics/Greenwin.Pic" : Unpack 5 To 0 : Erase 5
  192.             Repeat : Until Fire(1) or Fire(0)
  193.          End If 
  194.          If WIN=2
  195.             Load "Graphics/Redwin.Pic" : Unpack 5 To 0 : Erase 5
  196.             Repeat : Until Fire(1) or Fire(0)
  197.          End If 
  198.          Fade 3 : Wait 10*3
  199.          Screen Open 0,320,256,16,Lowres
  200.          Colour 1,$FFF
  201.          Curs Off : Flash Off : Cls 0
  202.          Pen 1 : Paper 0 : Ink 1,0
  203.          Centre At(,0)+"Game Over!"
  204.          Centre At(,1)+"----------"
  205.          Centre At(,3)+" Player 1's score was:"+Str$(SK(1))
  206.          Centre At(,4)+" Player 2's score was:"+Str$(SK(2))
  207.          Centre At(,6)+"Press Fire!"
  208.          Repeat : Until Fire(1) or Fire(0)
  209.          Print : Print 
  210.          If SK(1)>HL(5)
  211.             Input "Your Name Player 1:";N1$
  212.             N$=N1$ : SC=SK(1)
  213.             Cls 0
  214.             SCORES["Hi-Score State after","Player 1's score!"]
  215.             Repeat : Until Fire(1) or Fire(0)
  216.          End If 
  217.          If SK(2)>HL(5)
  218.             Input "Your Name Player 2:";N1$
  219.             N$=N1$ : SC=SK(2)
  220.             Cls 0
  221.             SCORES["Hi-Score State after","Player 2's Score!"]
  222.             Repeat : Until Fire(1) or Fire(0)
  223.          End If 
  224.          ' Save all of the Hi-Scores! 
  225.          Open Random 1,"Hi-Scores"
  226.          Field 1,15 As NAME$,5 As SCORE$
  227.          For F=1 To 5
  228.             NAME$=H$(F)
  229.             SCORE$=Str$(HL(F))
  230.             Put 1,F
  231.          Next F
  232.          Close 1
  233.          If WIN=1
  234.             TW1=TW1+1
  235.          Else 
  236.             TW2=TW2+1
  237.          End If 
  238.          GOES=GOES+1
  239.          WIN=0
  240.          WINNER=0
  241.          RESETVALUES
  242.       Until GOES=3
  243.       GOES=0
  244.    Loop 
  245. End Proc
  246. ' Set Up the screen, (Set CO-Ords, and place ground!)
  247. Procedure SETUPSCREEN
  248.    Pen 1 : Paper 0 : Ink 1,0
  249.    Locate 0,0 : Curs Off 
  250.    Print " * Give `Em' Hell. By Ben Ashley 1991 * "
  251.    Get Sprite Palette 
  252.    '  Place the grass 
  253.    For F=0 To 320 Step 10
  254.       Paste Bob F,230,48
  255.    Next F
  256.    ' Set up ALL of the Co-Ordinates for the Bobs
  257.    XM(1)=0 : YM(1)=226 : MI(1)=1
  258.    XM(2)=310 : YM(2)=226 : MI(2)=12
  259.    JX(1)=20 : JY(1)=220 : JI(1)=17
  260.    JX(2)=290 : JY(2)=220 : JI(2)=21
  261.    HX(1)=40 : HY(1)=220 : HI(1)=23
  262.    HX(2)=270 : HY(2)=220 : HI(2)=27
  263.    TX(1)=60 : TY(1)=220 : TI(1)=31
  264.    TX(2)=245 : TY(2)=220 : TI(2)=35
  265.    PX(1)=80 : PY(1)=220 : PI(1)=37
  266.    PX(2)=225 : PY(2)=220 : PI(2)=38
  267.    Double Buffer 
  268. End Proc
  269. ' Set the Bobs!  
  270. Procedure SET_BOBS
  271.    On Error Proc HELP
  272.    ' The 2 men
  273.    If T$(1)="m"
  274.       Bob 1,XM(1),YM(1),MI(1)
  275.    End If 
  276.    If T$(2)="m"
  277.       Bob 2,XM(2),YM(2),MI(2)
  278.    End If 
  279.    ' The 2 Jeeps
  280.    If JOK(1)=1
  281.       Bob 3,JX(1),JY(1),JI(1)
  282.    End If 
  283.    If JOK(2)=1
  284.       Bob 4,JX(2),JY(2),JI(2)
  285.    End If 
  286.    ' The 2 Helicoptors
  287.    If HOK(1)=1
  288.       Bob 5,HX(1),HY(1),HI(1)
  289.    End If 
  290.    If HOK(2)=1
  291.       Bob 6,HX(2),HY(2),HI(2)
  292.    End If 
  293.    ' The 2 Tanks
  294.    If AOK(1)=1
  295.       Bob 7,TX(1),TY(1),TI(1)
  296.    End If 
  297.    If AOK(2)=1
  298.       Bob 8,TX(2),TY(2),TI(2)
  299.    End If 
  300.    ' The 2 planes 
  301.    If POK(1)=1
  302.       Bob 9,PX(1),PY(1),PI(1)
  303.    End If 
  304.    If POK(2)=1
  305.       Bob 10,PX(2),PY(2),PI(2)
  306.    End If 
  307.    ' The 2 Mountains! 
  308.    Bob 11,90,213,55
  309.    Bob 12,185,213,53
  310.    ' The 2 Guard Doors! 
  311.    If D(1)=1
  312.       Bob 13,125,213,54
  313.    End If 
  314.    If D(2)=1
  315.       Bob 14,185,213,54
  316.    End If 
  317.    ' The 4 Flags! 
  318.    Bob 21,0,215,58
  319.    Bob 22,290,215,59
  320.    Bob 24,0,200,58
  321.    Bob 25,290,200,59
  322. End Proc
  323. ' Player 1 other control 
  324. Procedure P1C
  325.    On Error Proc HELP
  326.    If MEN(1)>-1
  327.       If Fire(1)
  328.          If T$(1)="m"
  329.             If Bob Col(1,3 To 3)
  330.                If JOK(1)=1
  331.                   T$(1)="j"
  332.                   Bob Off 1
  333.                   Amal Off 1
  334.                   Channel 3 To Bob 3
  335.                   Amal 3,A$(3)
  336.                   Amal On 3
  337.                End If 
  338.             End If 
  339.             If Bob Col(1,5 To 5)
  340.                If HOK(1)=1
  341.                   T$(1)="h"
  342.                   Bob Off 1
  343.                   Amal Off 1
  344.                   Channel 5 To Bob 5
  345.                   Amal 5,A$(5)
  346.                   Amal On 5
  347.                End If 
  348.             End If 
  349.             If Bob Col(1,7 To 7)
  350.                If AOK(1)=1
  351.                   T$(1)="t"
  352.                   Bob Off 1
  353.                   Amal Off 1
  354.                   Channel 7 To Bob 7
  355.                   Amal 7,A$(7)
  356.                   Amal On 7
  357.                End If 
  358.             End If 
  359.             If Bob Col(1,9 To 9)
  360.                If POK(1)=1
  361.                   T$(1)="p"
  362.                   Bob Off 1
  363.                   Amal Off 1
  364.                   Channel 9 To Bob 9
  365.                   Amal 9,A$(9)
  366.                   Amal On 9
  367.                End If 
  368.             End If 
  369.          End If 
  370.          If T$(1)="p"
  371.             If Y Bob(9)<220 and BO=0
  372.                BO=1
  373.                Bob 15,X Bob(9),Y Bob(9)+20,47
  374.                Channel 11 To Bob 15
  375.                Amal 11,"M 0,300,200;"
  376.                Amal On 11
  377.             End If 
  378.          End If 
  379.          If T$(1)="m"
  380.             MF=1
  381.             SOUNDFX_2
  382.             Bob 18,X Bob(1),Y Bob(1)-5,43
  383.             Channel 13 To Bob 18
  384.             If I Bob(1)>3 and I Bob(1)<7
  385.                Amal 13,"M -400,0,250" : Amal On 13
  386.             End If 
  387.             If I Bob(1)>0 and I Bob(1)<4
  388.                Amal 13,"M 400,0,250" : Amal On 13
  389.             End If 
  390.          End If 
  391.          If T$(1)="t"
  392.             TF=1
  393.             SOUNDFX_2
  394.             Bob 18,X Bob(7),Y Bob(7)-2,45
  395.             Channel 13 To Bob 18
  396.             If I Bob(7)=31
  397.                Amal 13,"M 400,0,100"
  398.             End If 
  399.             If I Bob(7)=32
  400.                Amal 13,"M -400,0,100"
  401.             End If 
  402.             Amal On 13
  403.          End If 
  404.       End If 
  405.       If Jleft(1)
  406.          If T$(1)="p"
  407.             If Y Bob(9)=220
  408.                T$(1)="m"
  409.                XM(1)=X Bob(9)
  410.                Amal Off 9
  411.                Bob 1,XM(1),YM(1),MI(1)
  412.                Channel 1 To Bob 1
  413.                Amal 1,A$(1)
  414.                Amal On 1
  415.             End If 
  416.             If PF=0
  417.                SOUNDFX_3
  418.                Bob 20,X Bob(9),Y Bob(9),44
  419.                Channel 14 To Bob 20
  420.                Amal 14,"M 400,0,100" : Amal On 14
  421.                PF=1
  422.             End If 
  423.          End If 
  424.       End If 
  425.       If Jdown(1)
  426.          If T$(1)="j"
  427.             T$(1)="m"
  428.             Amal Off 3
  429.             XM(1)=X Bob(3)
  430.             Bob 1,XM(1),YM(1),MI(1)
  431.             Channel 1 To Bob 1
  432.             Amal 1,A$(1)
  433.             Amal On 1
  434.          End If 
  435.          If T$(1)="h"
  436.             If Y Bob(5)=220 or Y Bob(5)=221
  437.                Amal Off 5
  438.                XM(1)=X Bob(5)
  439.                T$(1)="m"
  440.                Bob 1,XM(1),YM(1),MI(1)
  441.                Channel 1 To Bob 1
  442.                Amal 1,A$(1)
  443.                Amal On 1
  444.                Amal Off 5
  445.             End If 
  446.          End If 
  447.          If T$(1)="t"
  448.             T$(1)="m"
  449.             Amal Off 7
  450.             XM(1)=X Bob(7)
  451.             Bob 1,XM(1),YM(1),MI(1)
  452.             Channel 1 To Bob 1
  453.             Amal 1,A$(1)
  454.             Amal On 1
  455.          End If 
  456.       End If 
  457.    End If 
  458. End Proc
  459. ' Player 2 other control 
  460. Procedure P2C
  461.    On Error Proc HELP
  462.    If MEN(2)>-1
  463.       If Fire(0)
  464.          If T$(2)="m"
  465.             If Bob Col(2,4 To 4)
  466.                If JOK(2)=1
  467.                   T$(2)="j"
  468.                   Bob Off 2
  469.                   Amal Off 2
  470.                   Channel 4 To Bob 4
  471.                   Amal 4,A$(4)
  472.                   Amal On 4
  473.                End If 
  474.             End If 
  475.             If Bob Col(2,6 To 6)
  476.                If HOK(2)=1
  477.                   T$(2)="h"
  478.                   Bob Off 2
  479.                   Amal Off 2
  480.                   Channel 6 To Bob 6
  481.                   Amal 6,A$(6)
  482.                   Amal On 6
  483.                End If 
  484.             End If 
  485.             If Bob Col(2,8 To 8)
  486.                If AOK(2)=1
  487.                   T$(2)="t"
  488.                   Bob Off 2
  489.                   Amal Off 2
  490.                   Channel 8 To Bob 8
  491.                   Amal 8,A$(8)
  492.                   Amal On 8
  493.                End If 
  494.             End If 
  495.             If Bob Col(2,10 To 10)
  496.                If POK(2)=1
  497.                   T$(2)="p"
  498.                   Bob Off 2
  499.                   Amal Off 2
  500.                   Channel 10 To Bob 10
  501.                   Amal 10,A$(10)
  502.                   Amal On 10
  503.                End If 
  504.             End If 
  505.          End If 
  506.          If T$(2)="p"
  507.             If Y Bob(10)<220 and BO2=0
  508.                BO2=1
  509.                Bob 16,X Bob(10),Y Bob(10)+20,47
  510.                Channel 12 To Bob 16
  511.                Amal 12,"M 0,300,200;"
  512.                Amal On 12
  513.             End If 
  514.          End If 
  515.          If T$(2)="m"
  516.             MF2=1
  517.             SOUNDFX_2
  518.             Bob 17,X Bob(2),Y Bob(2)-5,43
  519.             Channel 12 To Bob 17
  520.             If I Bob(2)>11 and I Bob(2)<15
  521.                Amal 12,"M -400,0,250" : Amal On 12
  522.             End If 
  523.             If I Bob(2)>8 and I Bob(2)<12
  524.                Amal 12,"M 400,0,250" : Amal On 12
  525.             End If 
  526.          End If 
  527.          If T$(2)="t"
  528.             TF2=1
  529.             SOUNDFX_2
  530.             Bob 17,X Bob(8),Y Bob(8)-2,45
  531.             Channel 12 To Bob 17
  532.             If I Bob(8)=34
  533.                Amal 12,"M 400,0,100"
  534.             End If 
  535.             If I Bob(8)=35
  536.                Amal 12,"M -400,0,100"
  537.             End If 
  538.             Amal On 12
  539.          End If 
  540.       End If 
  541.       If Jright(0)
  542.          If T$(2)="p"
  543.             If Y Bob(10)=220
  544.                T$(2)="m"
  545.                XM(2)=X Bob(10)
  546.                Amal Off 10
  547.                Bob 2,XM(2),YM(2),MI(2)
  548.                Channel 2 To Bob 2
  549.                Amal 2,A$(2)
  550.                Amal On 2
  551.             End If 
  552.             If PF2=0
  553.                SOUNDFX_3
  554.                Bob 19,X Bob(10),Y Bob(10),44
  555.                Channel 15 To Bob 19
  556.                Amal 15,"M -400,0,100" : Amal On 15
  557.                PF2=1
  558.             End If 
  559.          End If 
  560.       End If 
  561.       If Jdown(0)
  562.          If T$(2)="j"
  563.             T$(2)="m"
  564.             Amal Off 4
  565.             XM(2)=X Bob(4)
  566.             Bob 2,XM(2),YM(2),MI(2)
  567.             Channel 2 To Bob 2
  568.             Amal 2,A$(2)
  569.             Amal On 2
  570.          End If 
  571.          If T$(2)="h"
  572.             If Y Bob(6)=220 or Y Bob(6)=221
  573.                Amal Off 6
  574.                XM(2)=X Bob(6)
  575.                T$(2)="m"
  576.                Bob 2,XM(2),YM(2),MI(2)
  577.                Channel 2 To Bob 2
  578.                Amal 2,A$(2)
  579.                Amal On 2
  580.                Amal Off 6
  581.             End If 
  582.          End If 
  583.          If T$(2)="t"
  584.             T$(2)="m"
  585.             Amal Off 8
  586.             XM(2)=X Bob(8)
  587.             Bob 2,XM(2),YM(2),MI(2)
  588.             Channel 2 To Bob 2
  589.             Amal 2,A$(2)
  590.             Amal On 2
  591.          End If 
  592.       End If 
  593.    End If 
  594. End Proc
  595. ' Player 1 Die Animation 
  596. Procedure P1DIE
  597.    SOUNDFX_4
  598.    If T$(1)="m"
  599.       If I Bob(1)>=1 or I Bob(1)<=3
  600.          Paste Bob X Bob(1),231,7
  601.       Else 
  602.          Paste Bob X Bob(1),231,8
  603.       End If 
  604.    End If 
  605.    MEN(1)=MEN(1)-1
  606.    If MEN(1)<0
  607.       WINNER=2
  608.    End If 
  609.    XM(1)=0
  610.    T$(1)="m"
  611.    Bob 1,XM(1),YM(1),MI(1)
  612.    Channel 1 To Bob 1
  613.    Amal 1,A$(1)
  614.    Amal On 1
  615. End Proc
  616. ' Player 2 Die Animation 
  617. Procedure P2DIE
  618.    SOUNDFX_4
  619.    If T$(2)="m"
  620.       If I Bob(2)>=9 or I Bob(2)<=11
  621.          Paste Bob X Bob(2),231,15
  622.       Else 
  623.          Paste Bob X Bob(2),231,16
  624.       End If 
  625.    End If 
  626.    MEN(2)=MEN(2)-1
  627.    If MEN(2)<0
  628.       WINNER=1
  629.    End If 
  630.    T$(2)="m"
  631.    XM(2)=300
  632.    Bob 2,XM(2),YM(2),MI(2)
  633.    Channel 2 To Bob 2
  634.    Amal 2,A$(2)
  635.    Amal On 2
  636. End Proc
  637. ' Collision and Score checks, e.t.c (Massive procedure)  
  638. Procedure CHECKS
  639.    On Error Proc HELP
  640.    If Bob Col(7,13 To 13)
  641.       SOUNDFX_6
  642.       Bob Off 13 : D(1)=0
  643.       Add SK(1),10
  644.    End If 
  645.    If Bob Col(7,14 To 14)
  646.       SOUNDFX_6
  647.       Bob Off 14 : D(2)=0
  648.       Add SK(1),10
  649.    End If 
  650.    If Bob Col(1,13 To 13)
  651.       XM(1)=X Bob(13)
  652.       If X Bob(1)<X Bob(13)
  653.          Add XM(1),-10
  654.          Bob 1,XM(1),YM(1),MI(1)
  655.       Else 
  656.          Add XM(1),10
  657.          Bob 1,XM(1),YM(1),MI(1)
  658.       End If 
  659.    End If 
  660.    If Bob Col(3,13 To 13)
  661.       JX(1)=X Bob(13)
  662.       If X Bob(3)<X Bob(13)
  663.          Add JX(1),-20
  664.       Else 
  665.          Add JX(1),20
  666.       End If 
  667.       Bob 3,JX(1),JY(1),JI(1)
  668.    End If 
  669.    If Bob Col(3,14 To 14)
  670.       JX(1)=X Bob(14)
  671.       If X Bob(3)<X Bob(14)
  672.          Add JX(1),-20
  673.       Else 
  674.          Add JX(1),20
  675.       End If 
  676.       Bob 3,JX(1),JY(1),JI(1)
  677.    End If 
  678.    If Bob Col(1,14 To 14)
  679.       XM(1)=X Bob(14)
  680.       If X Bob(1)<X Bob(14)
  681.          Add XM(1),-10
  682.          Bob 1,XM(1),YM(1),MI(1)
  683.       Else 
  684.          Add XM(1),10
  685.          Bob 1,XM(1),YM(1),MI(1)
  686.       End If 
  687.    End If 
  688.    If HOK(1)=1
  689.       If Y Bob(5)>220
  690.          HY(1)=Y Bob(5)
  691.          HX(1)=X Bob(5) : HY(1)=220
  692.          Bob 5,HX(1),HY(1),HI(1)
  693.       End If 
  694.    End If 
  695.    If Bob Col(8,13 To 13)
  696.       SOUNDFX_6
  697.       Bob Off 13 : D(1)=0
  698.       Add SK(2),10
  699.    End If 
  700.    If Bob Col(8,14 To 14)
  701.       SOUNDFX_6
  702.       Bob Off 14 : D(2)=0
  703.       Add SK(2),10
  704.    End If 
  705.    If Bob Col(2,13 To 13)
  706.       XM(2)=X Bob(13)
  707.       If X Bob(2)<X Bob(13)
  708.          Add XM(2),-10
  709.          Bob 2,XM(2),YM(2),MI(2)
  710.       Else 
  711.          Add XM(2),10
  712.          Bob 2,XM(2),YM(2),MI(2)
  713.       End If 
  714.    End If 
  715.    If Bob Col(4,13 To 13)
  716.       JX(2)=X Bob(13)
  717.       If X Bob(4)<X Bob(13)
  718.          Add JX(2),-20
  719.       Else 
  720.          Add JX(2),20
  721.       End If 
  722.       Bob 4,JX(2),JY(2),JI(2)
  723.    End If 
  724.    If Bob Col(4,14 To 14)
  725.       JX(2)=X Bob(14)
  726.       If X Bob(4)<X Bob(14)
  727.          Add JX(2),-20
  728.       Else 
  729.          Add JX(2),20
  730.       End If 
  731.       Bob 4,JX(2),JY(2),JI(2)
  732.    End If 
  733.    If Bob Col(2,14 To 14)
  734.       XM(2)=X Bob(14)
  735.       If X Bob(2)<X Bob(14)
  736.          Add XM(2),-10
  737.          Bob 2,XM(2),YM(2),MI(2)
  738.       Else 
  739.          Add XM(2),10
  740.          Bob 2,XM(2),YM(2),MI(2)
  741.       End If 
  742.    End If 
  743.    If HOK(2)=1
  744.       If Y Bob(6)>220
  745.          HY(2)=Y Bob(6)
  746.          HX(2)=X Bob(6) : HY(2)=220
  747.          Bob 6,HX(2),HY(2),HI(2)
  748.       End If 
  749.    End If 
  750.    If Bob Col(5,11 To 12) or Bob Col(5,6 To 6) or Bob Col(5,9 To 9) or Bob Col(5,10 To 10)
  751.       SOUNDFX_1
  752.       Amal Off 5
  753.       Channel 5 To Bob 5
  754.       Amal 5," Anim 1,(39,20)(40,20)(41,20)(42,20) ;  Let RA=1 "
  755.       Amal On 5
  756.       Add SK(2),20
  757.    End If 
  758.    If Bob Col(6,11 To 12) or Bob Col(6,5 To 5) or Bob Col(6,9 To 9) or Bob Col(6,10 To 10)
  759.       SOUNDFX_1
  760.       Amal Off 6
  761.       Channel 6 To Bob 6
  762.       Amal 6," Anim 1,(39,20)(40,20)(41,20)(42,20) ;  Let RJ=1 "
  763.       Amal On 6
  764.       Add SK(1),20
  765.    End If 
  766.    If Bob Col(9,9 To 14) or Bob Col(15,9 To 9) or Bob Col(19,9 To 9)
  767.       SOUNDFX_1
  768.       Amal Off 9
  769.       Channel 9 To Bob 9
  770.       Amal 9," Anim 1,(39,20)(40,20)(41,20)(42,20); Let RB=1 "
  771.       Amal On 9
  772.       Add SK(2),20
  773.    End If 
  774.    If Bob Col(10,9 To 14) or Bob Col(15,10 To 10) or Bob Col(20,10 To 10)
  775.       SOUNDFX_1
  776.       Amal Off 10
  777.       Channel 10 To Bob 10
  778.       Amal 10," Anim 1,(39,20)(40,20)(41,20)(42,20); Let RI=1 "
  779.       Amal On 10
  780.       Add SK(1),20
  781.    End If 
  782.    If Amreg(0)=1
  783.       Amreg(0)=0
  784.       HOK(1)=0
  785.       Paste Bob X Bob(5),220,29
  786.       If T$(1)="h"
  787.          T$(1)="m"
  788.          XM(1)=X Bob(5)
  789.          Bob 1,XM(1),YM(1),MI(1)
  790.          Channel 1 To Bob 1
  791.          Amal 1,A$(1)
  792.          Amal On 1
  793.       End If 
  794.       Bob Off 5
  795.    End If 
  796.    If Amreg(9)=1
  797.       Amreg(9)=0
  798.       If T$(2)="h"
  799.          HOK(2)=0
  800.          Paste Bob X Bob(6),220,30
  801.          T$(2)="m"
  802.          XM(2)=X Bob(6)
  803.          Bob 2,XM(2),YM(2),MI(2)
  804.          Channel 2 To Bob 2
  805.          Amal 2,A$(2)
  806.          Amal On 2
  807.       End If 
  808.       Bob Off 6
  809.    End If 
  810.    If Amreg(1)=1
  811.       Amreg(1)=0
  812.       POK(1)=0
  813.       If T$(1)="p"
  814.          T$(1)="m"
  815.          XM(1)=X Bob(9)
  816.          Bob 1,XM(1),YM(1),MI(1)
  817.          Channel 1 To Bob 1
  818.          Amal 1,A$(1)
  819.          Amal On 1
  820.       End If 
  821.       Bob Off 9
  822.    End If 
  823.    If Amreg(8)=1
  824.       Amreg(8)=0
  825.       POK(2)=0
  826.       If T$(2)="p"
  827.          T$(2)="m"
  828.          XM(2)=X Bob(10)
  829.          Bob 2,XM(2),YM(2),MI(2)
  830.          Channel 2 To Bob 2
  831.          Amal 2,A$(2)
  832.          Amal On 2
  833.       End If 
  834.       Bob Off 10
  835.    End If 
  836.    If T$(1)="m"
  837.       If X Bob(1)<0
  838.          Bob 1,0,YM(1),MI(1)
  839.       End If 
  840.       If X Bob(1)>320
  841.          Bob 1,310,YM(1),MI(1)
  842.       End If 
  843.    End If 
  844.    If T$(1)="p"
  845.       If X Bob(9)>320
  846.          Bob 9,0,Y Bob(9),I Bob(9)
  847.       End If 
  848.    End If 
  849.    If BO=1
  850.       If Y Bob(15)>230
  851.          BO=0
  852.          SOUNDFX_5
  853.          Bob 15,X Bob(15),200,51
  854.          Channel 11 To Bob 15
  855.          Amal 11,"A 2,(51,20)(52,20) ; Let RK=1 "
  856.          Amal On 11
  857.       End If 
  858.    End If 
  859.    If BO2=1
  860.       If Y Bob(16)>230
  861.          BO2=0
  862.          SOUNDFX_5
  863.          Bob 16,X Bob(16),200,51
  864.          Channel 12 To Bob 16
  865.          Amal 12,"A 2,(51,20)(52,20) ; Let RL=1 "
  866.          Amal On 12
  867.       End If 
  868.    End If 
  869.    If Amreg(10)=1
  870.       Amreg(10)=0
  871.       Paste Bob X Bob(15),230,49
  872.       Bob Off 15
  873.       Amal Off 11
  874.       BO=0
  875.    End If 
  876.    If Amreg(11)=1
  877.       Amreg(11)=0
  878.       Paste Bob X Bob(16),230,49
  879.       Bob Off 16
  880.       Amal Off 12
  881.       BO2=0
  882.    End If 
  883.    ' The lines below are the BOMB checks.  To see if someone has just got 
  884.    ' nuked! 
  885.    If Bob Col(15,2 To 2)
  886.       Bob Off 15
  887.       BO=0
  888.       P2DIE
  889.       Add SK(1),30
  890.    End If 
  891.    If Bob Col(16,1 To 1)
  892.       Bob Off 16
  893.       BO2=0
  894.       P1DIE
  895.       Add SK(2),30
  896.    End If 
  897.    If Bob Col(18,4 To 4)
  898.       JD(2)=JD(2)+1
  899.       If JD(2)>5
  900.          If T$(2)="j"
  901.             P2DIE
  902.          End If 
  903.          JOK(2)=0
  904.          Paste Bob X Bob(4),Y Bob(4),22
  905.          Bob Off 4
  906.          SOUNDFX_1
  907.          Add SK(1),40
  908.       End If 
  909.    End If 
  910.    If Bob Col(17,3 To 3)
  911.       JD(1)=JD(1)+1
  912.       If JD(1)>5
  913.          If T$(1)="j"
  914.             P1DIE
  915.          End If 
  916.          JOK(1)=0
  917.          Paste Bob X Bob(4),Y Bob(4),19
  918.          Bob Off 3
  919.          SOUNDFX_1
  920.          Add SK(2),40
  921.       End If 
  922.    End If 
  923.    If Bob Col(15,6 To 6)
  924.       HD(2)=HD(2)+1
  925.       If HD(2)>10
  926.          If T$(2)="h"
  927.             P2DIE
  928.          End If 
  929.          HOK(2)=0
  930.          Paste Bob X Bob(6),Y Bob(6),30
  931.          Bob Off 6
  932.          SOUNDFX_1
  933.          Add SK(1),40
  934.       End If 
  935.    End If 
  936.    If Bob Col(15,5 To 5)
  937.       HD(1)=HD(1)+1
  938.       If HD(1)>10
  939.          If T$(1)="h"
  940.             P1DIE
  941.          End If 
  942.          HOK(1)=0
  943.          Paste Bob X Bob(5),Y Bob(5),29
  944.          Bob Off 5
  945.          SOUNDFX_1
  946.          Add SK(2),40
  947.       End If 
  948.    End If 
  949.    If Bob Col(15,8 To 8) or Bob Col(18,8 To 8)
  950.       TD(2)=TD(2)+1
  951.       If TD(2)>6
  952.          If T$(2)="t"
  953.             P2DIE
  954.          End If 
  955.          AOK(2)=0
  956.          Paste Bob X Bob(8),Y Bob(8),36
  957.          Bob Off 8
  958.          SOUNDFX_1
  959.          Add SK(1),50
  960.       End If 
  961.    End If 
  962.    If Bob Col(15,7 To 7) or Bob Col(17,7 To 7)
  963.       TD(1)=TD(1)+1
  964.       If TD(1)>6
  965.          If T$(1)="t"
  966.             P1DIE
  967.          End If 
  968.          AOK(1)=0
  969.          Paste Bob X Bob(7),Y Bob(7),33
  970.          Bob Off 7
  971.          SOUNDFX_1
  972.          Add SK(2),50
  973.       End If 
  974.    End If 
  975.    If Bob Col(16,6 To 6)
  976.       HD(2)=HD(2)+1
  977.       If HD(2)>10
  978.          If T$(2)="h"
  979.             P2DIE
  980.          End If 
  981.          HOK(2)=0
  982.          Bob Off 6
  983.          SOUNDFX_1
  984.          Add SK(1),10
  985.       End If 
  986.    End If 
  987.    If Bob Col(16,5 To 5)
  988.       HD(1)=HD(1)+1
  989.       If HD(1)>10
  990.          If T$(1)="h"
  991.             P1DIE
  992.          End If 
  993.          HOK(1)=0
  994.          Bob Off 5
  995.          SOUNDFX_1
  996.          Add SK(2),10
  997.       End If 
  998.    End If 
  999.    If Bob Col(16,8 To 8)
  1000.       TD(2)=TD(2)+1
  1001.       If TD(2)>6
  1002.          If T$(2)="t"
  1003.             P2DIE
  1004.          End If 
  1005.          AOK(2)=0
  1006.          Paste Bob X Bob(8),Y Bob(8),36
  1007.          Bob Off 8
  1008.          SOUNDFX_1
  1009.          Add SK(1),20
  1010.       End If 
  1011.    End If 
  1012.    If Bob Col(16,7 To 7)
  1013.       TD(1)=TD(1)+1
  1014.       If TD(1)>6
  1015.          If T$(1)="t"
  1016.             P1DIE
  1017.          End If 
  1018.          AOK(1)=0
  1019.          Paste Bob X Bob(7),Y Bob(7),33
  1020.          Bob Off 7
  1021.          SOUNDFX_1
  1022.          Add SK(2),20
  1023.       End If 
  1024.    End If 
  1025.    If Bob Col(10,15 To 16)
  1026.       PD(2)=PD(2)+1
  1027.       If PD(2)>3
  1028.          If T$(2)="p"
  1029.             P2DIE
  1030.          End If 
  1031.          POK(2)=0
  1032.          Bob Off 10
  1033.          SOUNDFX_1
  1034.          Add SK(1),30
  1035.       End If 
  1036.    End If 
  1037.    If Bob Col(9,15 To 16)
  1038.       PD(1)=PD(1)+1
  1039.       If PD(1)>3
  1040.          If T$(1)="p"
  1041.             P1DIE
  1042.          End If 
  1043.          POK(1)=0
  1044.          Bob Off 9
  1045.          SOUNDFX_1
  1046.          Add SK(2),30
  1047.       End If 
  1048.    End If 
  1049.    ' Below are all of the Co-Ordinate checks, which stops stuff going off 
  1050.    ' screen, and stuff like that! 
  1051.    If T$(2)="p"
  1052.       If X Bob(10)<0
  1053.          PX(2)=320
  1054.          Bob 10,PX(2),Y Bob(10),PI(2)
  1055.       End If 
  1056.       If Y Bob(10)<0
  1057.          Bob 10,X Bob(10),0,I Bob(10)
  1058.       End If 
  1059.    End If 
  1060.    If T$(1)="p"
  1061.       If Y Bob(9)<0
  1062.          Bob 9,X Bob(9),0,I Bob(9)
  1063.       End If 
  1064.    End If 
  1065.    If T$(2)="m"
  1066.       If X Bob(2)>320
  1067.          XM(2)=310
  1068.          Bob 2,XM(2),YM(2),MI(2)
  1069.       End If 
  1070.       If X Bob(2)<0
  1071.          XM(2)=0
  1072.          Bob 2,XM(2),YM(2),MI(2)
  1073.       End If 
  1074.    End If 
  1075.    If T$(1)="j"
  1076.       If X Bob(3)>310
  1077.          Bob 3,310,JY(1),JI(1)
  1078.       End If 
  1079.       If X Bob(3)<0
  1080.          Bob 3,0,JY(1),JI(1)
  1081.       End If 
  1082.    End If 
  1083.    If T$(2)="j"
  1084.       If X Bob(4)>310
  1085.          Bob 4,310,JY(2),JI(2)
  1086.       End If 
  1087.       If X Bob(4)<0
  1088.          Bob 4,0,JY(2),JI(2)
  1089.       End If 
  1090.    End If 
  1091.    If T$(1)="t"
  1092.       If X Bob(7)>310
  1093.          Bob 7,310,TY(1),TI(1)
  1094.       End If 
  1095.       If X Bob(7)<0
  1096.          Bob 7,0,TY(1),TI(1)
  1097.       End If 
  1098.    End If 
  1099.    If T$(2)="t"
  1100.       If X Bob(8)>310
  1101.          Bob 8,320,TY(2),TI(2)
  1102.       End If 
  1103.       If X Bob(8)<0
  1104.          Bob 8,0,TY(2),TI(2)
  1105.       End If 
  1106.    End If 
  1107.    If T$(1)="h"
  1108.       If X Bob(5)>310
  1109.          Bob 5,310,Y Bob(5),HI(1)
  1110.       End If 
  1111.       If X Bob(5)<0
  1112.          Bob 5,0,Y Bob(5),HI(1)
  1113.       End If 
  1114.       If Y Bob(5)<0
  1115.          Bob 5,X Bob(5),0,I Bob(5)
  1116.       End If 
  1117.    End If 
  1118.    If T$(2)="h"
  1119.       If X Bob(6)>310
  1120.          Bob 6,310,Y Bob(6),HI(2)
  1121.       End If 
  1122.       If X Bob(6)<0
  1123.          Bob 6,0,Y Bob(6),HI(2)
  1124.       End If 
  1125.       If Y Bob(6)<0
  1126.          Bob 6,X Bob(6),0,I Bob(6)
  1127.       End If 
  1128.    End If 
  1129.    ' Below are all of the shooting conditions!
  1130.    If Bob Col(17,1 To 1)
  1131.       Bob Off 17
  1132.       P1DIE
  1133.       Add SK(2),15
  1134.    End If 
  1135.    If Bob Col(18,2 To 2)
  1136.       Bob Off 18
  1137.       P2DIE
  1138.       Add SK(1),15
  1139.    End If 
  1140.    If Bob Col(17,5 To 5)
  1141.       Bob Off 17
  1142.       Add SK(2),10
  1143.    End If 
  1144.    If Bob Col(18,6 To 6)
  1145.       Bob Off 18
  1146.       Add SK(2),10
  1147.    End If 
  1148.    ' Someone gets squashed
  1149.    If Bob Col(7,2 To 2)
  1150.       P2DIE
  1151.       Add SK(1),5
  1152.    End If 
  1153.    If Bob Col(8,1 To 1)
  1154.       P1DIE
  1155.       Add SK(2),5
  1156.    End If 
  1157.    If Bob Col(3,2 To 2)
  1158.       P2DIE
  1159.       Add SK(1),10
  1160.    End If 
  1161.    If Bob Col(1,4 To 4)
  1162.       P1DIE
  1163.       Add SK(2),10
  1164.    End If 
  1165.    If Bob Col(10,1 To 1)
  1166.       P1DIE
  1167.       Add SK(2),10
  1168.    End If 
  1169.    If Bob Col(9,2 To 2)
  1170.       P2DIE
  1171.       Add SK(1),10
  1172.    End If 
  1173.    ' Turn Bombs off when things hit mountains!
  1174.    If Bob Col(15,11 To 12)
  1175.       SOUNDFX_1
  1176.       Bob Off 15
  1177.    End If 
  1178.    If Bob Col(16,11 To 12)
  1179.       SOUNDFX_1
  1180.       Bob Off 16
  1181.    End If 
  1182.    ' Plane Fire!
  1183.    If PF=1
  1184.       If X Bob(20)<0
  1185.          Bob Off 20
  1186.          PF=0
  1187.       End If 
  1188.    End If 
  1189.    If PF2=1
  1190.       If X Bob(19)>320
  1191.          Bob Off 10
  1192.          PF2=0
  1193.       End If 
  1194.    End If 
  1195.    If Bob Col(20,11 To 14)
  1196.       Bob Off 20
  1197.    End If 
  1198.    If Bob Col(19,11 To 14)
  1199.       Bob Off 19
  1200.    End If 
  1201.    ' Turn off stuff 
  1202.    If POK(2)=0
  1203.       Bob Off 16
  1204.       Bob Off 19
  1205.    End If 
  1206.    If POK(1)=0
  1207.       Bob Off 15
  1208.       Bob Off 20
  1209.    End If 
  1210.    If Bob Col(20,2 To 2)
  1211.       P2DIE
  1212.       Add SK(1),40
  1213.    End If 
  1214.    If Bob Col(19,1 To 1)
  1215.       P1DIE
  1216.       Add SK(2),40
  1217.    End If 
  1218.    If Bob Col(17,11 To 14)
  1219.       Bob Off 17
  1220.    End If 
  1221.    If Bob Col(18,11 To 14)
  1222.       Bob Off 18
  1223.    End If 
  1224.    ' Keep AMAL running if you're a man! 
  1225.    If T$(1)="m"
  1226.       Bob 1,X Bob(1),Y Bob(1),I Bob(1)
  1227.       Channel 1 To Bob 1
  1228.       Amal 1,A$(1)
  1229.       Amal On 1
  1230.    End If 
  1231.    If T$(2)="m"
  1232.       Bob 2,X Bob(2),Y Bob(2),I Bob(2)
  1233.       Channel 2 To Bob 2
  1234.       Amal 2,A$(2)
  1235.       Amal On 2
  1236.    End If 
  1237.    ' Flag Checks
  1238.    If Bob Col(3,22 To 22)
  1239.       WINNER=1
  1240.       Bob Off 22
  1241.       Add SK(1),2000
  1242.       Bell 90
  1243.    End If 
  1244.    XM(1)=X Bob(1)
  1245.    If Bob Col(4,21 To 21)
  1246.       WINNER=2
  1247.       Bob Off 21
  1248.       Add SK(2),2000
  1249.       Bell 90
  1250.    End If 
  1251.    If WINNER=1
  1252.       If MEN(2)<0
  1253.          HOK(2)=0
  1254.          POK(2)=0
  1255.          JOK(2)=0
  1256.          AOK(2)=0
  1257.          Bob Off 2
  1258.          Amal Off 2
  1259.          Bob Off 4
  1260.          Amal Off 4
  1261.          Bob Off 6
  1262.          Amal Off 6
  1263.          Bob Off 8
  1264.          Amal Off 8
  1265.          Bob Off 10
  1266.          Amal Off 10
  1267.       End If 
  1268.    End If 
  1269.    If WINNER=2
  1270.       If MEN(1)<0
  1271.          HOK(1)=0
  1272.          POK(1)=0
  1273.          JOK(1)=0
  1274.          AOK(1)=0
  1275.          Bob Off 1
  1276.          Amal Off 1
  1277.          Bob Off 3
  1278.          Amal Off 3
  1279.          Bob Off 5
  1280.          Amal Off 7
  1281.          Bob Off 7
  1282.          Amal Off 9
  1283.          Bob Off 9
  1284.       End If 
  1285.    End If 
  1286.    ' Check for planes going to mine!
  1287.    If T$(1)="p"
  1288.       If Y Bob(9)>221
  1289.          SOUNDFX_1
  1290.          XM(1)=X Bob(9)
  1291.          Bob Off 9
  1292.          POK(1)=0
  1293.          T$(1)="m"
  1294.       End If 
  1295.    End If 
  1296.    If T$(2)="p"
  1297.       If Y Bob(10)>221
  1298.          SOUNDFX_1
  1299.          XM(2)=X Bob(10)
  1300.          Bob Off 10
  1301.          POK(2)=0
  1302.          T$(2)="m"
  1303.       End If 
  1304.    End If 
  1305.    ' Stop veichles going passed each other! 
  1306.    If Bob Col(7,5 To 5)
  1307.       X=X Bob(7)
  1308.       X2=X Bob(5)
  1309.       If X<X2
  1310.          X=X-10
  1311.       Else 
  1312.          X2=X2+10
  1313.       End If 
  1314.       Bob 7,X,Y Bob(7),I Bob(7)
  1315.       Bob 5,X2,Y Bob(5),I Bob(5)
  1316.    End If 
  1317.    If Bob Col(6,8 To 8)
  1318.       X21=X Bob(6)
  1319.       X22=X Bob(8)
  1320.       If X21<X22
  1321.          X21=X21-10
  1322.       Else 
  1323.          X22=X22+10
  1324.       End If 
  1325.       Bob 6,X21,Y Bob(6),I Bob(6)
  1326.       Bob 8,X22,Y Bob(8),I Bob(8)
  1327.    End If 
  1328.    If Bob Col(3,5 To 5)
  1329.       X=X Bob(3)
  1330.       X2=X Bob(5)
  1331.       If X<X2
  1332.          X=X-10
  1333.       Else 
  1334.          X2=X2+10
  1335.       End If 
  1336.       Bob 3,X,Y Bob(3),I Bob(3)
  1337.       Bob 5,X2,Y Bob(5),I Bob(5)
  1338.    End If 
  1339.    If Bob Col(4,6 To 6)
  1340.       X21=X Bob(4)
  1341.       X22=X Bob(6)
  1342.       If X21<X22
  1343.          X21=X21-10
  1344.       Else 
  1345.          X22=X22+10
  1346.       End If 
  1347.       Bob 4,X21,Y Bob(4),I Bob(4)
  1348.       Bob 6,X22,Y Bob(6),I Bob(6)
  1349.    End If 
  1350.    If Bob Col(7,9 To 9)
  1351.       X=X Bob(7)
  1352.       X2=X Bob(9)
  1353.       If X<X2
  1354.          X=X-10
  1355.       Else 
  1356.          X2=X2+10
  1357.       End If 
  1358.       Bob 7,X,Y Bob(7),I Bob(7)
  1359.       Bob 9,X2,Y Bob(9),I Bob(9)
  1360.    End If 
  1361.    If Bob Col(8,10 To 10)
  1362.       X21=X Bob(8)
  1363.       X22=X Bob(10)
  1364.       If X21<X22
  1365.          X21=X21-10
  1366.       Else 
  1367.          X22=X22+10
  1368.       End If 
  1369.       Bob 8,X21,Y Bob(8),I Bob(8)
  1370.       Bob 10,X22,Y Bob(10),I Bob(10)
  1371.    End If 
  1372.    ' Last 2 flag checks!
  1373.    If Bob Col(24,6 To 6)
  1374.       Add SK(1),2000
  1375.       FL(1)=1
  1376.       Bob Off 24
  1377.       Bell 90
  1378.    End If 
  1379.    If Bob Col(25,5 To 5)
  1380.       Add SK(1),2000
  1381.       FL(2)=1
  1382.       Bob Off 25
  1383.       Bell 90
  1384.    End If 
  1385. End Proc
  1386. ' Reset values after a game! 
  1387. Procedure RESETVALUES
  1388.    BO=0 : BO2=0 : MF=0 : MF2=0
  1389.    TF=0 : TF2=0 : HF=0 : HF2=0 : JF=0 : JF2=0
  1390.    PF=0 : PF2=0
  1391.    ' Give all arrays their default numbers! 
  1392.    For F=1 To 2
  1393.       SK(F)=0
  1394.       HOK(F)=1
  1395.       AOK(F)=1
  1396.       JOK(F)=1
  1397.       POK(F)=1
  1398.       MEN(F)=3
  1399.       T$(F)="m"
  1400.       D(F)=1
  1401.       DI(F)=54
  1402.       FL(F)=0
  1403.    Next F
  1404. End Proc
  1405. ' Explosion! ' 
  1406. Procedure SOUNDFX_1
  1407.    If MEG1=1
  1408.       Sam Play 1000,1,8000
  1409.    Else 
  1410.       Boom 
  1411.    End If 
  1412. End Proc
  1413. ' Gun Shot 
  1414. Procedure SOUNDFX_2
  1415.    If MEG1=1
  1416.       Sam Play 100,2,8000
  1417.    Else 
  1418.       Shoot 
  1419.    End If 
  1420. End Proc
  1421. ' Plane fire 
  1422. Procedure SOUNDFX_3
  1423.    If MEG1=1
  1424.       Sam Play 10,3,8000
  1425.    Else 
  1426.       Shoot 
  1427.    End If 
  1428. End Proc
  1429. ' Death! 
  1430. Procedure SOUNDFX_4
  1431.    If MEG1=1
  1432.       Sam Play 1,4,8000
  1433.    Else 
  1434.       Bell 6
  1435.    End If 
  1436. End Proc
  1437. ' Massive Atom Explosion!!! !"�$%^ 
  1438. Procedure SOUNDFX_5
  1439.    If MEG1=1
  1440.       Sam Play 1
  1441.    Else 
  1442.       Boom : Boom : Boom 
  1443.    End If 
  1444. End Proc
  1445. ' Door Blast!
  1446. Procedure SOUNDFX_6
  1447.    If MEG1=1
  1448.       Sam Play 1,6,8000
  1449.    Else 
  1450.       Boom 
  1451.    End If 
  1452. End Proc
  1453. ' The Hi-Score table routine (V1.0)  
  1454. Procedure SCORES[TITLE$,TITLE2$]
  1455.    Colour 1,$FFF
  1456.    Curs Off : Flash Off : Hide On : Cls 0
  1457.    Pen 1 : Paper 0
  1458.    Centre At(,1)+TITLE$
  1459.    Centre At(,3)+TITLE2$
  1460.    ' Work out position
  1461.    K$=""
  1462.    If SC>HL(1) Then POS=1 : K$=H$(1) : H$(1)=N$ : HL(1)=SC
  1463.    If SC>HL(2) and SC<HL(1) Then POS=2 : K$=H$(2) : H$(2)=N$ : HL(2)=SC
  1464.    If SC>HL(3) and SC<HL(2) Then POS=3 : K$=H$(3) : H$(3)=N$ : HL(3)=SC
  1465.    If SC>HL(4) and SC<HL(3) Then POS=4 : K$=H$(4) : H$(4)=N$ : HL(4)=SC
  1466.    If SC>HL(5) and SC<HL(4) Then POS=5 : K$=H$(5) : H$(5)=N$ : HL(5)=SC
  1467.    If SC<HL(5) Then POS=6
  1468.    ' Display High Score Table for the first time
  1469.    Pen 5
  1470.    N=1
  1471.    For F=10 To 14
  1472.       Print At(10,F);H$(N)
  1473.       N=N+1
  1474.    Next F
  1475.    Pen 7
  1476.    N=1
  1477.    For F=10 To 14
  1478.       Print At(22,F);HL(N)
  1479.       N=N+1
  1480.    Next F
  1481. End Proc
  1482. ' Set up all 10 AMAL strings 
  1483. Procedure STRINGS
  1484.    ' This procedure defines ALL 10 of the AMAL Channels.
  1485.    ' The number in the array A$, is always the same as the bob number 
  1486.    ' and the AMAL channel.  This makes life easier and less complicated!
  1487.    ' So, A$(1)=Bob 1 and AMAL Channel 1.(Player 1 Man!) 
  1488.    '
  1489.    ' Player 1's Man 
  1490.    A$(1)="Begin:"
  1491.    A$(1)=A$(1)+"If J1&4 then Jump G ; " : Rem Left 
  1492.    A$(1)=A$(1)+"If J1&8 then Jump H ; " : Rem Right
  1493.    A$(1)=A$(1)+" Jump Begin ; "
  1494.    A$(1)=A$(1)+"G: Anim 1,(4,2)(5,2)(6,2) ; M -3,0,3 ; Jump Begin ; "
  1495.    A$(1)=A$(1)+"H: Anim 1,(1,2)(2,2)(3,2) ; M  3,0,3 ; Jump Begin ; "
  1496.    Channel 1 To Bob 1
  1497.    Amal 1,A$(1)
  1498.    Amal On 1
  1499.    ' Player 2's man 
  1500.    A$(2)="Begin:"
  1501.    A$(2)=A$(2)+"If J0&4 then Jump G ; " : Rem Left 
  1502.    A$(2)=A$(2)+"If J0&8 then Jump H ; " : Rem Right
  1503.    A$(2)=A$(2)+" Jump Begin ; "
  1504.    A$(2)=A$(2)+"G: Anim 1,(12,2)(13,2)(14,2) ; M -3,0,3 ; Jump Begin ; "
  1505.    A$(2)=A$(2)+"H: Anim 1,(9,2)(10,2)(11,2) ; M  3,0,3 ; Jump Begin ; "
  1506.    Channel 2 To Bob 2
  1507.    Amal 2,A$(2)
  1508.    Amal On 2
  1509.    ' Player 1's Jeep  
  1510.    A$(3)="Begin:"
  1511.    A$(3)=A$(3)+"If J1&4 then Jump G ; " : Rem Left 
  1512.    A$(3)=A$(3)+"If J1&8 then Jump H ; " : Rem Right
  1513.    A$(3)=A$(3)+" Jump Begin ; "
  1514.    A$(3)=A$(3)+"G: Anim 0,(18,2); M -3,0,2 ; Jump Begin ; "
  1515.    A$(3)=A$(3)+"H: Anim 0,(17,2); M  3,0,2 ; Jump Begin ; "
  1516.    ' Player 2's Jeep  
  1517.    A$(4)="Begin:"
  1518.    A$(4)=A$(4)+"If J0&4 then Jump G ; " : Rem Left 
  1519.    A$(4)=A$(4)+"If J0&8 then Jump H ; " : Rem Right
  1520.    A$(4)=A$(4)+" Jump Begin ; "
  1521.    A$(4)=A$(4)+"G: Anim 0,(21,2); M -3,0,2 ; Jump Begin ; "
  1522.    A$(4)=A$(4)+"H: Anim 0,(20,2); M  3,0,2 ; Jump Begin ; "
  1523.    ' Player 1's Helicopter
  1524.    A$(5)="Begin:"
  1525.    A$(5)=A$(5)+"If J1&4 then Jump G ; "
  1526.    A$(5)=A$(5)+"If J1&8 then Jump H ; "
  1527.    A$(5)=A$(5)+"If J1&1 then Jump I ; "
  1528.    A$(5)=A$(5)+"M 0,2,2; Jump Begin ; "
  1529.    A$(5)=A$(5)+"G: A 0,(24,1); M -3,0,3; Jump Begin ; "
  1530.    A$(5)=A$(5)+"H: A 0,(23,1); M  3,0,3; Jump Begin ; "
  1531.    A$(5)=A$(5)+"I: M 0,-5,5; Jump Begin ; "
  1532.    ' Player 2's Helicopter
  1533.    A$(6)="Begin:"
  1534.    A$(6)=A$(6)+"If J0&4 then Jump G ; "
  1535.    A$(6)=A$(6)+"If J0&8 then Jump H ; "
  1536.    A$(6)=A$(6)+"If J0&1 then Jump I ; "
  1537.    A$(6)=A$(6)+"M 0,2,2; Jump Begin ; "
  1538.    A$(6)=A$(6)+"G: A 0,(27,1); M -3,0,3; Jump Begin ; "
  1539.    A$(6)=A$(6)+"H: A 0,(26,1); M  3,0,3; Jump Begin ; "
  1540.    A$(6)=A$(6)+"I: M 0,-5,5; Jump Begin ; "
  1541.    ' Player 1's Tank
  1542.    A$(7)="Begin:"
  1543.    A$(7)=A$(7)+"If J1&4 then Jump G ; " : Rem Left 
  1544.    A$(7)=A$(7)+"If J1&8 then Jump H ; " : Rem Right
  1545.    A$(7)=A$(7)+" Jump Begin ; "
  1546.    A$(7)=A$(7)+"G: Anim 0,(32,2); M -3,0,6 ; Jump Begin ; "
  1547.    A$(7)=A$(7)+"H: Anim 0,(31,2); M  3,0,6 ; Jump Begin ; "
  1548.    ' Player 2's Tank
  1549.    A$(8)="Begin:"
  1550.    A$(8)=A$(8)+"If J0&4 then Jump G ; " : Rem Left 
  1551.    A$(8)=A$(8)+"If J0&8 then Jump H ; " : Rem Right
  1552.    A$(8)=A$(8)+" Jump Begin ; "
  1553.    A$(8)=A$(8)+"G: Anim 0,(35,2); M -3,0,6 ; Jump Begin ; "
  1554.    A$(8)=A$(8)+"H: Anim 0,(34,2); M  3,0,6 ; Jump Begin ; "
  1555.    ' Player 1's Plane 
  1556.    A$(9)="Begin :"
  1557.    A$(9)=A$(9)+"If J1&1 then Jump G ; "
  1558.    A$(9)=A$(9)+"If J1&4 then Jump Begin ; "
  1559.    A$(9)=A$(9)+"If J1&8 then Jump H ; "
  1560.    A$(9)=A$(9)+"If J1&15 then Jump I ; "
  1561.    A$(9)=A$(9)+"Jump Begin ; "
  1562.    A$(9)=A$(9)+"G: M 0,-10,5 ; Jump Begin;"
  1563.    A$(9)=A$(9)+"H: M 10,0,5 ; Jump Begin;"
  1564.    A$(9)=A$(9)+"I: M 0,10,5; Jump Begin ;"
  1565.    ' Player 2's Plane 
  1566.    A$(10)="Begin :"
  1567.    A$(10)=A$(10)+"If J0&1 then Jump G ; "
  1568.    A$(10)=A$(10)+"If J0&8 then Jump Begin ; "
  1569.    A$(10)=A$(10)+"If J0&4 then Jump H ; "
  1570.    A$(10)=A$(10)+"If J0&15 then Jump I ; "
  1571.    A$(10)=A$(10)+"Jump Begin ; "
  1572.    A$(10)=A$(10)+"G: M 0,-10,5 ; Jump Begin;"
  1573.    A$(10)=A$(10)+"H: M -10,0,5 ; Jump Begin;"
  1574.    A$(10)=A$(10)+"I: M 0,10,5; Jump Begin ;"
  1575. End Proc
  1576. ' Who did, what? Why? How? and Where? (!!) 
  1577. Procedure CREDITS
  1578.    Centre At(,0)+"Give `Em' Hell Credits"
  1579.    Centre At(,1)+"----------------------"
  1580.    Centre At(,3)+"Game Design and Programming:  Ben Ashley     "
  1581.    Centre At(,4)+"Music and Graphics         :  Ben Ashley     "
  1582.    Centre At(,5)+"Ideas and problem help     :  Matt Tucker    "
  1583.    Centre At(,6)+"Tea & Solace               :  Kathy Ashley   "
  1584.    Centre At(,7)+"For AMOS                   :  Francois Lionet"
  1585.    Centre At(,9)+"This game is ï¿½ Top Sprite software 1991"
  1586.    Centre At(,11)+"AMOS is ï¿½ 1990 Mandarin/Jawx"
  1587.    Centre At(,13)+"Scores are saved everytime the game ends"
  1588.    Centre At(,14)+"So you can record that moment of glory! "
  1589.    Centre At(,16)+"Hi-Score system v1.1"
  1590.    Centre At(,18)+"Extensive documentation and source ON DISK! "
  1591.    Centre At(,20)+"Thanks to Matthew Tucker for the support and help"
  1592. End Proc
  1593. ' Oh Gad!  An error! 
  1594. Procedure HELP
  1595.    ' Ohhhaaaaa GAaaaddd, Aaaan Errrorrr!
  1596.    Resume Next 
  1597. End Proc
  1598. ' Here is what the rest of Top Sprite think of Give `Em' Hell: 
  1599. ' M.Tucker:
  1600. '  This game shows the full capabilities of Top Sprite's Top Programmer
  1601. '  (Ben Ashley)  What else?  comparing this game to other AMOS productions   
  1602. '  it is like comparing Amiga's to P.C's!!   
  1603. '  Go out and buy it now!    
  1604. '                        Graphics: 70 / 100
  1605. '                        Sound   : 88 / 100
  1606. '                     Playability: 90 / 100
  1607. '                        Value   : 90 / 100
  1608. '                        Overall : 85 / 100
  1609. '
  1610. ' Message from Ben 
  1611. ' ---------------- 
  1612. ' I never believed this game could actually be good.  I would of given up  
  1613. ' if it had not been for collegues helping me out and suggesting ideas.  
  1614. ' So, I dedicate this game to...... Nicola Smith ( She'll kill me soon!) 
  1615. '